Lien Mesa 20.0 Now Includes Intel's Gallium3D Driver To Build By Default - phoronix.com
Entretien avec Jérôme Glisse, développeur des pilotes graphiques radeon pour Red Hat
Nous avons la chance d’avoir quelques développeurs qui fréquentent LinuxFr.org (what else?), dont Jérôme Glisse (alias glisse) qui travaille au sein de la société Red Hat sur le pilote graphique libre pour cartes graphiques ATI/AMD Radeon.
Pour cet entretien, j'ai invité les membres de LinuxFr.org en tribune de rédaction (il faut être inscrit !) à venir compléter mon questionnaire avec leurs propres questions, et Jérôme a bien voulu se prêter au jeu : un grand merci à lui.
À noter que les hyperliens ont été ajoutés après coup par les contributeurs à cette dépêche pour en faciliter la lecture.
Mesa 9.0 est sorti : OpenGL 3.1, OpenCL, VDPAU…
Nous avions relayé au mois d’août la publication des spécifications OpenGL 4.3 et OpenGL ES 3.0 par le Groupe Khronos.
Mesa, une implémentation libre de la spécification pour plates‐formes de type Unix, comme GNU/Linux, vient de sortir en version 9.0, offrant notamment la prise en charge de la version 3.1 d’OpenGL datant du 24 mars 2009. Du fait de cette importante mise à jour, Mesa 8.1 sort finalement sous le nom de Mesa 9.0.
Effervescence autour de la pile graphique libre
Ces derniers temps ont été très riches en événements dans le monde graphique libre.
Une première phase du remodelage intégral de la pile graphique de nos systèmes libres avait commencé par DRI2, apportant notamment la possibilité à un compositeur tel que Compiz de rediriger le rendu OpenGL d’une fenêtre (Redirected Direct Rendering), puis le Kernel Mode Setting (KMS) permettant de transférer la gestion des modes vidéo et de la mémoire vidéo du pilote graphique X.Org (DDX) vers le noyau, et enfin, Gallium3D, le cadriciel de Tungsten Graphics, permettant la mise en commun de nombreuses fonctionnalités auparavant implémentées dans chaque pilote graphique.
Très récemment, le noyau 2.6.38 a apporté le kernel page flipping, permettant l’arrivée du futur serveur d’affichage Wayland développé par Kristian Høgsberg (également auteur de DRI2 et de AIGLX) et popularisé par Mark Shuttleworth (qui souhaite son adoption dans Ubuntu dès l’année prochaine). Les bibliothèques graphiques GTK+ 3 et Qt 4 ont déjà des back-ends permettant le fonctionnement expérimental des applications GNOME 3 ou KDE 4 sous Wayland…
Parmi les plus récents événements, de nombreux étudiants ont proposé des projets en lien avec la pile graphique libre utilisée par GNU/Linux à l’occasion de l’édition 2011 du Google Summer of Code (GSoC). Ces projets sont plus précisément des « state trackers » pour Gallium3D :
un étudiant belge du nom de Denis Steckelmacher (alias steckdenis), a proposé rien de moins qu’un state tracker OpenGL 4.1, entièrement récrit. Ce projet ayant été jugé bien trop ambitieux par les développeurs Mesa / Gallium3D dans le cadre du GSoC, ces derniers lui ont proposé de travailler sur le remplacement des représentations intermédiaires propres à Gallium3D (Mesa IR) par une sémantique [GLSL] plus standard. Après coup, cette idée n’a pas fait non plus l’unanimité au sein des développeurs, avec notamment deux sociétés, Intel et LunarG travaillant actuellement sur ces fameuses représentations intermédiaires. Denis Steckelmacher a finalement décidé de travailler sur Clover, le state tracker OpenCL, permettant d’exploiter la puissance des GPU pour le calcul intensif, avec pour objectif obtenir un state tracker fonctionnel réalisant, dans un premier temps, les calculs OpenCL sur le processeur en utilisant LLVMpipe, un moteur de « rendu OpenGL » logiciel basé sur LLVM (Low Level Virtual Machine).
un étudiant français, Émeric Grange (alias Emeric_), participerait également au GSoC 2011, avec pour projet le développement d’un décodeur vidéo WebM / VP8 accéléré via les [[shaders]] des processeurs graphiques. Tout cela serait placé dans un state tracker Gallium3D, qui exposerait ses fonctions aux lecteurs multimédias comme VLC, MPlayer et Totem (via un greffon GStreamer) à travers l’API VDPAU de NVIDIA.
Ce state tracker pourrait constituer un bon point de départ pour la prise en charge générique du décodage matériel d’autres formats vidéo, tels que le MPEG 4 ASP (DIVX < 7) et MPEG 4 AVC (H.264) ou le MPEG 2 (déjà pris en charge par le state tracker XvMC). À noter que, comme pour la gestion des textures compressées S3TC, la gestion de ces formats devra faire l’objet d’une analyse des brevets / licences impliqués.
Certes, tout n’est pas rose du côté de la pile graphique Linux, mais au moins ça bouge et ça avance plutôt dans le bon sens. Voir ci-dessous pour les détails.